A multipath network is a data network in which more than one outgoing communication paths are available for sending data from a first data processing system to a second data processing system, more than one incoming communications paths are available for receiving data at the first data processing system from the second data processing system, or both. A data communication session, e.g., a TCP session between the first data processing system and the second data processing system, can use any one of the outgoing paths and any one of the incoming paths. A multipath environment is a data processing environment where a multipath network is deployed.
TCP is a commonly used communication protocol used for communicating packet data from one data processing system to another over a data network. Establishing a TCP session between two data processing systems involves a multi-step exchange of preliminary information between the two systems. This multi-step exchange of information is called a three-way handshake.
A first step of a three-way handshake occurs when, to initiate a TCP session, a first data processing system sends a request (SYN packet) to the second data processing system to synchronize the first data processing system's sequence number. A second step of the three-way handshake occurs when the second data processing system sends a request to the first data processing system to synchronize the second data processing system's sequence number and an acknowledgement of the first data processing system's sequence number (SYN-ACK packet). A third step of the three-way handshake occurs when the first data processing system sends an acknowledgment of the second data processing system's sequence number (ACK packet). Thus, the sequence numbers of the first and second data processing systems are synchronized in both data processing systems, and the TCP session is established, starting from these synchronized sequence numbers.